package com.sike.dao;
/**
 * 
 * @company sikejiaoyu
 */
import java.io.Serializable;
import java.util.List;

public interface BaseDao  {
	/**
	 * 新增时向数据库插入数据
	 * 
	 * @param insertSQL配置SQL对应ID
	 * @param param待保存对象
	 * @return保存后对象
	 */

	public Object insert(String insertSQL, Object param);

	/**
	 * 执行数据库修改
	 * 
	 * @param updateSQL配置SQL对应ID
	 * @param param待保存对象
	 */
	public int update(String updateSQL, Object param);

	/**
	 * 删除数据库数据
	 * 
	 * @param deleteSQL配置SQL对应ID
	 * @param param待执行对象
	 * @return
	 */
	public int delete(String deleteSQL, Object param);

	/**
	 * 查询一条数据
	 * 
	 * @param loadSQL配置SQL对应ID
	 * @param param查询条件对象
	 * @return查询结果对象
	 */
	public Object load(String loadSQL, Object param);

	/**
	 * 查询多条数据（不分页）
	 * 
	 * @param key配置SQL对应ID
	 * @param model查询条件对象
	 * @return查询结果队列
	 */
	public List find(String key, Object param);

	
	/**
	 * 根据查询结果判断是否存在
	 * 
	 * @param key配置SQL对应ID
	 * @param model查询条件对象
	 * @return true存在，false不存在
	 */
	public boolean exists(String key, Object param);

	/**
	 * 计算总行数
	 * 
	 * @param key配置SQL对应ID
	 * @param model查询条件对象
	 * @return总行数
	 */
	public long count(String key, Object param);

	/**
	 * 得到sql语句ID名称前缀
	 * 
	 * @param model查询条件对象，类名称如EmployeeModel
	 * @return返回如“Employee.”
	 */
}
